## Redshift connection profile

After installing Elementary's dbt package upon running `dbt deps`,
you can generate Elementary's profile for usage with `edr` by running the following command within your project:

```shell
dbt run-operation elementary.generate_elementary_cli_profile
```

The command will print to the terminal a partially filled template of the profile that's needed for `edr` to work.
[Fill in the missing authentication fields](https://docs.getdbt.com/reference/warehouse-setups/redshift-setup#authentication-methods)
in the output and copy it to `~/.dbt/profiles.yml`.

The `profiles.yml` file to connect to Redshift should contain a profile in the following format:

```yml Redshift
## REDSHIFT ##
## By default, edr expects the profile name 'elementary'.      ##
## Configure the database and schema of elementary models.     ##
## Check where 'elementary_test_results' is to find it.        ##

elementary:
  outputs:
    default:
      type: redshift
      host: [hostname, like hostname.region.redshift.amazonaws.com]

      ## User/password auth, other options (IAM) require other configs ##
      user: [username]
      password: [password]

      dbname: [database name]
      schema: [schema name] # elementary schema, usually [schema name]_elementary
      threads: 4
      keepalives_idle: 240 # default 240 seconds
      connect_timeout: 10 # default 10 seconds
      # search_path: public # optional, not recommended
      sslmode:
        [
          optional,
          set the sslmode used to connect to the database (in case this parameter is set,
          will look for ca in ~/.postgresql/root.crt),
        ]
      ra3_node: true # enables cross-database sources
```

We support the same format and connection methods as dbt. Please refer to
dbt's documentation of [Redshift profile](https://docs.getdbt.com/reference/warehouse-setups/redshift-setup) for
further details.
